const request = require("../../utils/request.js");
const api = require("../../config/api.js");

Page({
  data: {
    messages: [],
    inputText: '',
    isTyping: false,
    scrollToView: '',
    userAvatar: '',
    quickQuestions: [
      '如何预约场地？',
      '预约规则是什么？',
      '可以取消预约吗？',
      '有哪些场地可用？'
    ],
    // AI回复模板
    aiResponses: [
      '您好！关于场地预约，您可以在"场地预约"页面选择日期、时间段和场地进行预约。',
      '预约场地非常简单，只需三步：选择日期 → 选择时间段 → 选择场地，然后确认预约即可。',
      '我们提供多个场地供您选择，包括会议室、咨询室、活动室等，您可以根据需求选择合适的场地。',
      '预约成功后，您可以在"我的"页面查看预约记录，如需取消，也可以在该页面进行操作。',
      '每个时间段为2小时，您可以根据实际需求选择合适的时间段进行预约。',
      '如果场地在您选择的时间段已被预约，系统会显示"已约"状态，您可以选择其他时间或场地。',
      '预约前请确认您的使用时间，避免浪费资源。如有特殊需求，可以联系管理员。',
      '感谢您的咨询！如果还有其他问题，随时可以问我哦！😊'
    ],
  },

  onLoad(options) {
    // 加载用户头像
    const userInfo = wx.getStorageSync('userInfo');
    if (userInfo && userInfo.avatarUrl) {
      this.setData({
        userAvatar: userInfo.avatarUrl
      });
    }
  },

  onShow() {
    // 滚动到底部
    this.scrollToBottom();
  },

  // 输入框内容变化
  onInput(e) {
    this.setData({
      inputText: e.detail.value
    });
  },

  // 快速提问
  onQuickQuestion(e) {
    const question = e.currentTarget.dataset.question;
    this.setData({
      inputText: question
    }, () => {
      this.onSend();
    });
  },

  // 发送消息
  onSend() {
    const { inputText, isTyping } = this.data;
    
    if (!inputText.trim() || isTyping) {
      return;
    }

    // 添加用户消息
    const userMessage = {
      id: Date.now(),
      role: 'user',
      content: inputText.trim(),
      time: this.getCurrentTime()
    };

    // 模拟AI回复
    console.log("this.data",this.data.inputText)
    this.simulateAIResponse(this.data.inputText);

    this.setData({
      messages: [...this.data.messages, userMessage],
      inputText: '',
      isTyping: true
    });
    console.log("this.data.messages",this.data.messages)

    // 滚动到底部
    this.scrollToBottom();

  },

  // 模拟AI回复
  async simulateAIResponse(inputText) {
    
    try {
      console.log(api.aiTutor.getAnswer,inputText)
      // 调用AI问答接口
      const res = await request.get(api.aiTutor.getAnswer, {
        prompt: inputText
      });
      console.log(res)
      const content= this.extractResponse(res);
      const aiMessage = {
        id: Date.now(),
        role: 'assistant',
        content:content,
        time: this.getCurrentTime()
      };
      this.setData({
        messages: [...this.data.messages, aiMessage],
        isTyping: false
      });
    } catch (err) {
      console.error("获取回答失败：", err);
      this.setData({
        isTyping: false
      });
    }

    // 滚动到底部
    this.scrollToBottom();
  },
  //截取内容
  extractResponse(response) {
    const parts = response.split('</think>');
    if (parts.length > 1) {
      // 取</think>之后的部分，并去除首尾空白
      return parts[parts.length - 1].trim();
    }
    // 如果没有找到</think>，返回原始内容
    return response.trim();
  },
  // 获取当前时间
  getCurrentTime() {
    const now = new Date();
    const hours = String(now.getHours()).padStart(2, '0');
    const minutes = String(now.getMinutes()).padStart(2, '0');
    return `${hours}:${minutes}`;
  },

  // 滚动到底部
  scrollToBottom() {
    setTimeout(() => {
      const messages = this.data.messages;
      if (messages.length > 0) {
        this.setData({
          scrollToView: `msg-${messages[messages.length - 1].id}`
        });
      }
    }, 100);
  }
});
